﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 英雄联盟
{
    
    class Program
    {
        public struct Guai
        {
            public string Gname;//怪物名称
            public double Ggjl;//怪物攻击力
            public double Gfyl;//怪物防御力
            public double Gsmz;//怪物生命值
            public double Gming;//怪物当前生命值
            public int KillMoney;//杀死怪物后获得的金币
            public int KillExp;//杀死怪物后获得的经验值
        }

        public struct Equip
        {
            public string Name;  //名字
            public double Money; //金币
            public double Attack;//攻击
            public double Defense;//防御
        }



        static void Main(string[] args)
        {
            Console.WriteLine("欢迎来到英雄联盟，你准备好了吗！");
            Console.WriteLine("请输入用户名：");
            string fristname = Console.ReadLine();
            Console.WriteLine("请输入密码：");
            string password = Console.ReadLine();
            if (fristname == "lumingyou" && password == "gongyiying")              //判断
            {
                Console.WriteLine("登陆成功，欢迎回到英雄联盟");           //正确回到英雄联盟
            }
            else
            {
                Console.WriteLine("用户名或密码输入错误，请再次输入：");    //错误再次输入

            }
            //游戏界面
            Console.WriteLine("--------------------------------------------------------");
            Console.WriteLine("欢迎来到英雄联盟！");
            Console.WriteLine("--------------------------------------------------------");
            Console.WriteLine("选择游戏模式：");
            Console.WriteLine("--------------------------------------------------------");
            Console.WriteLine("         英雄列表         \n" +
             "-------------------------- \n" +
             "英雄列表： \n" +
             "1、嘉文四世--攻击：43，防御：35，生命：120 \n" +
             "2、卡特琳娜--攻击：62，防御：30，生命：100 \n" +
             "3、盖伦--攻击：47，防御：37，生命：130 \n" +
             "4、赵信--攻击：45，防御：32，生命：110 \n" +
             "5、艾希--  攻击：58，防御：28，生命：80 \n" +
             "请选择英雄编号，查看英雄属性！");
            //选择英雄
            string number; //一个变量
            do
            {

                number = Console.ReadLine();
                switch (number)
                {
                    case "1":
                        Console.WriteLine("-----------------角色信息--------------------\n" +
                            "姓名：嘉文四世\n" +
                            " 简介：他是联盟时代诞生的第一位光盾王室成员。\n" +
                            "基础攻击：43，基础防御：35，基础生命：120\n" +
                            " 武器：\n" +
                            " 防具：\n" +
                            "等级：1，攻击：55，防御：40，金币：0\n" +
                            "最大生命值：144，当前生命值：144 \n" +
                            "----------------------------------------------\n" +
                            "你已经选择了英雄: 嘉文四世, 下面开始你的符文之地的冒险之旅吧！");
                        break;
                    case "2":
                        Console.WriteLine("-----------------角色信息--------------------\n" +
                             "姓名：卡特琳娜\n" +
                             "简介：她对刀剑的精通和她残酷的性格为她赢得了“不祥之刃”的称号。\n" +
                             "基础攻击：62，基础防御：30，基础生命：100\n" +
                             "武器：\n" +
                             "防具：\n" +
                             "等级：1，攻击：80，防御：34，金币：0\n" +
                             "最大生命值：120，当前生命值：120\n" +
                             "----------------------------------------------\n" +
                             "你已经选择了英雄: 卡特琳娜, 下面开始你的符文之地的冒险之旅吧！");
                        break;
                    case "3":
                        Console.WriteLine("-----------------角色信息--------------------\n" +
                             "姓名：盖伦\n" +
                             "简介：拥有“德玛西亚之力”头衔的英勇勇士，就是军队的模范。\n" +
                             "基础攻击：47，基础防御：37，基础生命：130\n" +
                             "武器：\n" +
                             "防具：\n" +
                             "等级：1，攻击：61，防御：42，金币：0\n" +
                             "最大生命值：156，当前生命值：156\n" +
                             "----------------------------------------------\n" +
                             "你已经选择了英雄: 盖伦, 下面开始你的符文之地的冒险之旅吧！");
                        break;
                    case "4":
                        Console.WriteLine("-----------------角色信息--------------------\n" +
                             "姓名：赵信\n" +
                             "简介：人称“德邦总管”的赵信是光盾王朝的私人管家。\n" +
                             "基础攻击：45，基础防御：32，基础生命：110\n" +
                             "武器：\n" +
                             "防具：\n" +
                             "等级：1，攻击：58，防御：36，金币：0\n" +
                             "最大生命值：132，当前生命值：132\n" +
                             "----------------------------------------------\n" +
                             "你已经选择了英雄: 赵信, 下面开始你的符文之地的冒险之旅吧！");
                        break;
                    case "5":
                        Console.WriteLine("-----------------角色信息--------------------\n" +
                             "姓名：艾希\n" +
                             "简介：艾希继承了祖先精通的箭术，因此也继承了阿瓦罗萨“寒冰射手”的称号。\n" +
                             "基础攻击：58，基础防御：28，基础生命：80\n" +
                             "武器：\n" +
                             "防具：\n" +
                             "等级：1，攻击：75，防御：32，金币：0\n" +
                             "最大生命值：96，当前生命值：96\n" +
                             "----------------------------------------------\n" +
                             "你已经选择了英雄: 艾希, 下面开始你的符文之地的冒险之旅吧！");
                        break;
                    default:
                        Console.WriteLine("请输入正确的英雄编号！\n" +
                            "--------------------\n" +
                            "         英雄列表         \n" +
                "-------------------------- \n" +
                "英雄列表： \n" +
                "1、嘉文四世--攻击：43，防御：35，生命：120 \n" +
                "2、卡特琳娜--攻击：62，防御：30，生命：100 \n" +
                "3、盖伦--攻击：47，防御：37，生命：130 \n" +
                "4、赵信--攻击：45，防御：32，生命：110 \n" +
                "5、艾希--  攻击：58，防御：28，生命：80 \n" +
                "请选择英雄编号，查看英雄属性！");
                        break;
                }
           } while (number != "5" && number != "4" && number != "3" && number != "2" && number != "1");

            Console.WriteLine("--------------------------------------------------------");
            Console.WriteLine("--------------------------------------------------------");
            Console.WriteLine("--------------------------------------------------------");
            Console.WriteLine("--------------------------------------------------------");
           
        }
        //购买装备
       
        public  static  Equip[]  noboday()
        {
        Equip[] equips = new Equip[4];
        //初始化第一件装备
        equips[0].Name="铁剑";    //名称
        equips[0].Money=100;     //金钱
        equips[0].Attack=15;     //攻击
        equips[0].Defense=0;     //防御
         //初始化第二件装备
        equips[0].Name="匕首";
        equips[0].Money=500;     //金钱
        equips[0].Attack=18;     //攻击
        equips[0].Defense=0;     //防御
              //初始化第三件装备
        equips[0].Name="布甲";
        equips[0].Money=200;     //金钱
        equips[0].Attack=0;     //攻击
        equips[0].Defense=10;     //防御
              //初始化第四件装备
        equips[0].Name="蓝盾";
        equips[0].Money=600;     //金钱
        equips[0].Attack=0;     //攻击
        equips[0].Defense=20;     //防御

            //返回 
            return equips;
        }

       //循环
        public static void  sometime(Equip[]equips)
        {
            for (int i = 0; i < equips.Length ; i++)
            {
                Console.WriteLine("{0}:{1}，金币：{2}，攻击力：{3}，防御力：{4}",i+1,equips[1].Name,
                  equips[0].Money, equips[0].Attack,equips[0].Defense);

            }
        }

        public static  void  Yyyyyyyyy(ref Hero player,Equip  buyEquip)
        {
            if (player.Money<buyEquip.Money)
            {
                Console.WriteLine("您的金币不足，购买失败！");
            }
            else
            {
                //在英雄所拥有的金币中扣除购买装备所需金币
                player.Money = buyEquip.Money;
                Console.WriteLine("{0}购买成功，花费{1}金币，",buyEquip.Name,buyEquip.Money);

                //为英雄装备武器，如果是攻击性武器，防御值为0，装备在英雄的防具属性中
                if (buyEquip.Defense == 0)
                    player.AttackEquals = buyEquip;
                //相反
                    player.DefenseEquals = buyEquip;
                

            }
        }


        public static void  BuyEquip(ref Hero player)
        {
            Console.WriteLine("--------------");
            Console.WriteLine("-----商店-----");
            Console.WriteLine("--------------");
            //装备初始化

            Equip[] equips = initEquips();

            //显示装备列表
            ShowEquipLis(equips);
            //根据用户输入购买
            Console.WriteLine("您拥有{0}个金币。",player.TotalMoney);
            Console.WriteLine("请输入装备对应编号来购买装备。");
            int equipIndex = int.Parse(Console.ReadLine());
            Equip buyEquip;
            switch (equipIndex)
            {
                case 1:
                case 2:
                case 3:
                case 4:
                    buyEquip = equips[equipIndex-1];
                    break;
                default:
                    buyEquip = equips[0];
                    Console.WriteLine("编号输入错误，默认购买第一个装备");
                    break;
            }
            //购买并穿上
            BuyAndTakeOnEquip(ref player, buyEquip);
        }

        private static void BuyAndTakeOnEquip(ref Hero player, Equip buyEquip)
        {
            throw new NotImplementedException();
        }

        private static void ShowEquipLis(Equip[] equips)
        {
            throw new NotImplementedException();
        }

        private static Equip[] initEquips()
        {
            throw new NotImplementedException();
        }

        
        public static Guai[] gw = new Guai[20];//怪物数

        private static void NOMe(string[] args)
        {
            
                                                   //升级
           double gong = 1000;//攻击力
            double fang = 500;//防御力
            double sheng = 1500;//生命值
            int jing = 0;//经验值
            double money = 0;//金币数
            int dj = 1;//等级
            Monsters();
            Console.WriteLine("\t\t\t\t\t欢迎来到新手村");
            Console.WriteLine("—————————————————————————————————————————————");
            int guai;
            guai = new Random().Next(0, 20);
            gw[guai].Gming = gw[guai].Gsmz;
            while (true)
            {
                Console.Write("\n发现怪物————" + gw[guai].Gname + "，是否击杀？");
                string jisha = Console.ReadLine();
                if (jisha == "是")
                {
                    for (int i = 0; i < 100; i++)
                    {
                        gong = gong - (gw[guai].Gfyl * 0.3);
                        if (gong < 0)
                        {
                            gong = 0;
                        }
                        Console.WriteLine("对怪物造成" + gong + "的伤害");
                        gw[guai].Gming = gw[guai].Gming - gong;
                        if (gw[guai].Gming <= 0)
                        {
                            gw[guai].Gming = 0;
                        }
                        Console.WriteLine("怪物当前生命值为" + gw[guai].Gming);
                        gw[guai].Ggjl = gw[guai].Ggjl - (fang * 0.15);
                        if (gw[guai].Ggjl <= 0)
                        {
                            gw[guai].Ggjl = 0;
                        }
                        Console.WriteLine("怪物对您造成" + gw[guai].Ggjl + "的伤害");
                        sheng = sheng - gw[guai].Ggjl;
                        if (sheng < 0)
                        {
                            sheng = 0;
                        }
                        Console.WriteLine("您当前生命值为" + sheng);
                        if (gw[guai].Gming <= 0 && sheng > 0)
                        {
                            jing = jing + gw[guai].KillExp;
                            money = money + gw[guai].KillMoney;
                            Console.WriteLine("\n击杀成功");
                            Console.WriteLine("获得" + gw[guai].KillExp + "经验值\n获得" + gw[guai].KillMoney + "金币");
                            if (jing >= dj * 500)
                            {
                                dj = jing / (dj * 500) + dj;
                                jing = jing - (dj * 500) + 500;
                                Console.WriteLine("恭喜您升级成功，现在等级为" + dj + "级");
                            }
                            break;
                        }
                        else if (gong <= 0)
                        {
                            Console.WriteLine("\n击杀失败，您可先去购买装备");
                            break;
                        }
                        else if (sheng <= 0)
                        {
                            Console.WriteLine("\n击杀失败，您可先去购买装备或退出本地图恢复生命");
                            break;
                        }
                    }
                }
                else if (jisha == "否")
                {
                    break;
                }
                Console.WriteLine("\n是否继续在此地图击杀怪");
                string js = Console.ReadLine();
                if (js == "是")
                {

                }
                else
                {
                    break;
                }
            }
            Console.WriteLine("当前等级" + dj + "，当前经验" + jing + ",当前金币" + money);
        }
        //怪物信息
        public static void Monsters()
        {
            //新手村怪物
            //怪物1
            gw[0].Gname = "荒野小怪";
            gw[0].Gsmz = 180;
            gw[0].Ggjl = 10;
            gw[0].Gfyl = 20;
            gw[0].KillMoney = 50;
            gw[0].KillExp = 250;

            //怪物2
            gw[1].Gname = "野兔\t";
            gw[1].Gsmz = 200;
            gw[1].Ggjl = 20;
            gw[1].Gfyl = 10;
            gw[1].KillMoney = 60;
            gw[1].KillExp = 300;

            //怪物3
            gw[2].Gname = "幽灵\t";
            gw[2].Gsmz = 220;
            gw[2].Ggjl = 15;
            gw[2].Gfyl = 25;
            gw[2].KillMoney = 80;
            gw[2].KillExp = 350;

            //怪物4
            gw[3].Gname = "食人花\t";
            gw[3].Gsmz = 240;
            gw[3].Ggjl = 25;
            gw[3].Gfyl = 15;
            gw[3].KillMoney = 100;
            gw[3].KillExp = 400;

            //怪物5
            gw[4].Gname = "狗尾巴草";
            gw[4].Gsmz = 300;
            gw[4].Ggjl = 30;
            gw[4].Gfyl = 50;
            gw[4].KillMoney = 150;
            gw[4].KillExp = 450;

            //怪物6
            gw[5].Gname = "枯木\t";
            gw[5].Gsmz = 420;
            gw[5].Ggjl = 75;
            gw[5].Gfyl = 20;
            gw[5].KillMoney = 170;
            gw[5].KillExp = 500;

            //怪物7
            gw[6].Gname = "巨蟹子\t";
            gw[6].Gsmz = 525;
            gw[6].Ggjl = 45;
            gw[6].Gfyl = 40;
            gw[6].KillMoney = 200;
            gw[6].KillExp = 530;

            //怪物8
            gw[7].Gname = "野花\t";
            gw[7].Gsmz = 647;
            gw[7].Ggjl = 68;
            gw[7].Gfyl = 45;
            gw[7].KillMoney = 220;
            gw[7].KillExp = 580;

            //怪物9
            gw[8].Gname = "野猪\t";
            gw[8].Gsmz = 720;
            gw[8].Ggjl = 77;
            gw[8].Gfyl = 70;
            gw[8].KillMoney = 300;
            gw[8].KillExp = 640;

            //怪物10
            gw[9].Gname = "甲虫\t";
            gw[9].Gsmz = 750;
            gw[9].Ggjl = 80;
            gw[9].Gfyl = 35;
            gw[9].KillMoney = 340;
            gw[9].KillExp = 700;


            //沉睡森林怪物
            //怪物11
            gw[10].Gname = "蝴蝶\t";
            gw[10].Gsmz = 1050;
            gw[10].Ggjl = 130;
            gw[10].Gfyl = 35;
            gw[10].KillMoney = 750;
            gw[10].KillExp = 1150;

            //怪物12
            gw[11].Gname = "野生狐\t";
            gw[11].Gsmz = 1300;
            gw[11].Ggjl = 200;
            gw[11].Gfyl = 55;
            gw[11].KillMoney = 800;
            gw[11].KillExp = 1455;

            //怪物13
            gw[12].Gname = "蛙\t";
            gw[12].Gsmz = 1255;
            gw[12].Ggjl = 145;
            gw[12].Gfyl = 35;
            gw[12].KillMoney = 730;
            gw[12].KillExp = 1350;

            //怪物14
            gw[13].Gname = "墨鱼\t";
            gw[13].Gsmz = 1400;
            gw[13].Ggjl = 250;
            gw[13].Gfyl = 70;
            gw[13].KillMoney = 940;
            gw[13].KillExp = 1500;

            //怪物15
            gw[14].Gname = "匣子\t";
            gw[14].Gsmz = 2000;
            gw[14].Ggjl = 300;
            gw[14].Gfyl = 100;
            gw[14].KillMoney = 1200;
            gw[14].KillExp = 2500;


            //峡谷怪物
            //怪物16
            gw[15].Gname = "亡蚁\t";
            gw[15].Gsmz = 3500;
            gw[15].Ggjl = 700;
            gw[15].Gfyl = 360;
            gw[15].KillMoney = 2000;
            gw[15].KillExp = 4500;

            //怪物17
            gw[16].Gname = "藤熏\t";
            gw[16].Gsmz = 4820;
            gw[16].Ggjl = 840;
            gw[16].Gfyl = 400;
            gw[16].KillMoney = 2450;
            gw[16].KillExp = 6400;

            //怪物18
            gw[17].Gname = "狐王\t";
            gw[17].Gsmz = 7000;
            gw[17].Ggjl = 400;
            gw[17].Gfyl = 500;
            gw[17].KillMoney = 2100;
            gw[17].KillExp = 5700;

            //怪物19
            gw[18].Gname = "山麓\t";
            gw[18].Gsmz = 6500;
            gw[18].Ggjl = 450;
            gw[18].Gfyl = 240;
            gw[18].KillMoney = 3700;
            gw[18].KillExp = 7400;

            //怪物20
            gw[19].Gname = "荒蛇\t";
            gw[19].Gsmz = 8400;
            gw[19].Ggjl = 350;
            gw[19].Gfyl = 210;
            gw[19].KillMoney = 4000;
            gw[14].KillExp = 9400;
         }    
         }
         }
       